#ifndef MINIMUSIC_H
#define MINIMUSIC_H

#include <QWidget>
#include "volumetool.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MiniMusic; }
QT_END_NAMESPACE

class MiniMusic : public QWidget
{
    Q_OBJECT

public:
    MiniMusic(QWidget *parent = nullptr);
    ~MiniMusic();
    // 初始化界面
    void initUI();
    // 连接信号和槽函数
    void conncectSignalAndSlots();
    // 在 MiniMusic 中添加延迟设置方法
    void delaySetLocalBackground();
    // 设置随机图⽚【歌曲的图⽚】
    QJsonArray RandomPicture();


protected:
    // 重写 QWidget 类的鼠标单击和鼠标滚轮
    void mousePressEvent(QMouseEvent* event) override;
    void mouseMoveEvent(QMouseEvent* event) override;
    void mouseReleaseEvent(QMouseEvent *event) override;
    // 记录光标相对于窗口标题的相对距离
    QPoint dragPosition;
private slots:
    void on_quit_clicked();
    void onBtFromClick(int pageId);

    void on_volume_clicked();

private:
    Ui::MiniMusic *ui;
    VolumeTool* volumnTool;
};
#endif // MINIMUSIC_H

// QJsonObject类:
// 头⽂件: <QJsonObject>
// 功能: 插⼊<key, value>键值对，如果key已经存在，则⽤value更新与key对应的value
// 返回值：返回指向新插⼊项的键值对
// QJsonObject::iterator insert(const QString &key, const QJsonValue &value);
// 功能：获取与key对应的value
// 返回值：返回的value⽤QJsonValue对象组织
// QJsonValue QJsonObject::value(const QString &key) const

//QJsonArray类
//作⽤：管理的是QJsonValue对象
//头⽂件：<QJsonArray>
//该类重载了[]运算符，可以通过下标⽅式获取管理的QJsonValue对象
//QJsonValue operator[](int i) const
//QJsonValueRef operator[](int i)
// 往QJsonArray中插⼊⼀个QJsonValue对象
//void append(const QJsonValue &value)

// QJsonValue类
// 单参构造⽅法，将QJsonObject对象转换为QJsonValue对象
// QJsonValue(const QJsonObject &o)
// 将内部管理的数据转化成QJsonObject返回
// QJsonObject toObject() const
// 将内部管理的数据转化成QString返回
// QString toString() const
